package modelo;
import vistas.JFIngrediente;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

public class IngredienteDAO {
private JFIngrediente ventana;
   
	public IngredienteDAO() {
		super();
		 ventana=new JFIngrediente();
		
		    
	}
    
	public void insertarIngrediente(Ingrediente ingrediente){
	
		String SQL = "INSERT INTO ingrediente "+
		 "(codingrediente, "+"nombreingrediente, "+"stock) "+
		 "VALUES "+ "('"+ingrediente.getCodIngrediente()+"',"+"'"+ingrediente.getNombreIngrediente()+"',"+"'"+ingrediente.getStock()+"')";
    
		Conexion.ejecutar(SQL);
	}
	
	
	public Ingrediente consultarIngrediente(String codigoIngrediente) {
		String tiraSQL = new String(); 
		Ingrediente ingredienteconsultado =null;
		
		tiraSQL = "SELECT * FROM ingrediente where codingrediente = '"+codigoIngrediente+"'" ;
		ResultSet resultSet = Conexion.consultar(tiraSQL);	
		

		try {
			if (resultSet.next())
			{ 
				String codigo = resultSet.getString("codingrediente");
				String nombre = resultSet.getString("nombreingrediente");
				String stock = resultSet.getString("stock");
			    ingredienteconsultado = new Ingrediente(codigo, nombre,stock);
			}		
				
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return ingredienteconsultado;
																																																					
	}
	
	public void eliminarIngrediente (Ingrediente ingrediente)
	{
		String tiraSQL = "DELETE FROM ingrediente WHERE codingrediente = '"+ ingrediente.getCodIngrediente()+"'"; 
		Conexion.ejecutar(tiraSQL);
	}
	
	public void actualizar(Ingrediente ingrediente,String codigoCingrediente)
	{
																												
		String tiraSQL = "UPDATE ingrediente SET  nombreingrediente ='" + ingrediente.getNombreIngrediente() + "', stock = '" + ingrediente.getStock()+ "' WHERE codingrediente = '" + ingrediente.getCodIngrediente()+"'";
		Conexion.ejecutar(tiraSQL);
	}

	public List<String> consultarIngrediente() 
	{
		List<String> ingre = new ArrayList<String>();
		String tiraSQL = "SELECT nombreingrediente FROM ingrediente";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) 
			{
				String nombre = resultSet.getString("nombreingrediente");
				ingre.add(nombre);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return ingre;
	}
	
	public void aumentarStock(String nombre, int existencia){
		
		String SQL = "SELECT stock FROM ingrediente WHERE nombreingrediente = '"+ nombre +"'";
		ResultSet resultSet = Conexion.consultar(SQL);
		int stock=0;
		try {
			while(resultSet.next()){
				stock = resultSet.getInt("stock");	
			}
			
		} catch (SQLException e) {
			e.printStackTrace();
		}
		
		int valor= existencia+ stock;
		
		String tiraSQL ="UPDATE ingrediente SET  stock = '"+ valor+"' WHERE nombreingrediente = '" + nombre +"'";
		Conexion.ejecutar(tiraSQL);
	}
	
	public List<Ingrediente> consultarIngre() 
	{
		List<Ingrediente> acciones = new ArrayList<Ingrediente>();
		String tiraSQL = "SELECT * FROM ingrediente";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				String codigo = resultSet.getString("codingrediente");
				String descripcion = resultSet.getString("nombreingrediente");
				String stock= resultSet.getString("stock");
				Ingrediente ingre = new Ingrediente(codigo, descripcion,stock);
				acciones.add(ingre);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return acciones;
	}

	
	public List<Ingrediente> MostrarIngre() 
	{
		List<Ingrediente> nuevoingrediente = new ArrayList<Ingrediente>();
		String tiraSQL = "SELECT * FROM ingrediente";
		ResultSet resultSet = Conexion.consultar(tiraSQL);		
		try {
			while (resultSet.next()) {
				String codigo = resultSet.getString("codingrediente");
				String descripcion = resultSet.getString("nombreingrediente");
				String stock= resultSet.getString("stock");
				Ingrediente ingre = new Ingrediente(codigo, descripcion,stock);
				nuevoingrediente.add(ingre);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return nuevoingrediente;
	}

}
